/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Entidade;

import Conexao.Persistir;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;

/**
 *
 * @author francis.almeida
 */
@Entity
public class Agendamento implements Serializable{
    
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;
    
    @Column(name="hora_inicio")
    private Long hora_inicio;
    
    @Column(name="hora_fim")
    private Long hora_fim;
    
    @Column(name="data_inicio")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date data_inicio;
    
    @Column(name="data_fim")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date data_fim;
    
    @Column(name="solicitante_email")
    private String solicitante_email;
    
    @Column(name="solicitante_nome")
    private String solicitante_nome;
    
    @Column(name="evento")
    private String evento;
    
    @Column(name="observacao")
    private String observacao;
    
    @Column(name="autenticador")
    private String autenticador;
    
    @OneToOne
    @JoinColumn(name = "Sala", insertable = true, updatable = true)
    private Sala sala;

    public String getAutenticador() {
        return autenticador;
    }

    public void setAutenticador(String autenticador) {
        this.autenticador = autenticador;
    }

    public String getSolicitante_email() {
        return solicitante_email;
    }

    public void setSolicitante_email(String solicitante_email) {
        this.solicitante_email = solicitante_email;
    }

    public String getSolicitante_nome() {
        return solicitante_nome;
    }

    public void setSolicitante_nome(String solicitante_nome) {
        this.solicitante_nome = solicitante_nome;
    }

    public Date getData_inicio() {
        return data_inicio;
    }

    public void setData_inicio(Date data_inicio) {
        this.data_inicio = data_inicio;
    }

    public Date getData_fim() {
        return data_fim;
    }

    public void setData_fim(Date data_fim) {
        this.data_fim = data_fim;
    }
    
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getHora_inicio() {
        return hora_inicio;
    }

    public void setHora_inicio(Long hora_inicio) {
        this.hora_inicio = hora_inicio;
    }

    public Long getHora_fim() {
        return hora_fim;
    }

    public void setHora_fim(Long hora_fim) {
        this.hora_fim = hora_fim;
    }


    public String getEvento() {
        return evento;
    }

    public void setEvento(String evento) {
        this.evento = evento;
    }

    public String getObservacao() {
        return observacao;
    }

    public void setObservacao(String observacao) {
        this.observacao = observacao;
    }

    public Sala getSala() {
        return sala;
    }

    public void setSala(Sala sala) {
        this.sala = sala;
    }
    
    
    
    
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Agendamento other = (Agendamento) obj;
        if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 13 * hash + (this.id != null ? this.id.hashCode() : 0);
        return hash;
    }
    
    
    public void Salvar(Object objeto) throws Exception {

        new Persistir().Salvar(objeto);

    }

    public void Atulizar(Object objeto) throws Exception {

        new Persistir().Atualizar(objeto);

    }

    public void Deletar(Object objeto) throws Exception {

        new Persistir().Deletar(objeto);

    }
    
}
